Redis 配置文件

1.redis查看配置

1
2
3
4
5
6
7
8
9
10
[root@redis ~]# redis-cli
127.0.0.1:6379> CONFIG get * # 查看所有配置项
127.0.0.1:6379> CONFIG get timeout # 查看timeout
1) "timeout"
2) "300"
127.0.0.1:6379> CONFIG set timeout 0 # 重设 timeout
OK
127.0.0.1:6379> CONFIG get timeout
1) "timeout"
2) "0"

2.redis 通用配置

1
2
3
4
5
6
7
8
9
10
11
12
13
daemonize no # 默认情况下,redis并不是以daemon形式来运行的。通过daemonize配置项可以控制redis的运行形式
pidfile /path/to/redis.pid # 当以daemon形式运行时,redis会生成一个pid文件,默认会生成在/var/run/redis.pid
bind 192.168.1.2 10.8.4.2 # 指定绑定的ip,可以有多个
port 6379 # 指定监听端口
unixsocket /tmp/redis.sock # 也可以监听socket
unixsocketperm 755 # 当监听socket时可以指定权限为755
timeout 0 # 当一个redis-client一直没有请求发向server端,那么server端有权主 动关闭这个连接,可以通过timeout来设置“空闲超时时限”,0表示永不关闭。
tcp-keepalive 0 # TCP连接保活策略,可以通过tcp-keepalive配置项来进行设置,单位为秒,假如设置为60秒,则server端会每60秒向连接空闲的客户端发起一次ACK请求,以检查客户端是否已经挂掉,对于无响应的客户端则会关闭其连接。如果设置为0,则不会进行保活检测。
loglevel notice # 日志级别,有四种debug, verbose, notice, warning
logfile “” # 定义日志路径,
syslog-ident redis # 如果希望日志打印到syslog中,通过syslog-enabled来控制。另外,syslog-ident还可以让你指定syslog里的日志标志。
syslog-facility local0 # 指定syslog的设备,可以是USER或者local0-local7
databases 16 # 设置数据库的总数量

3.redis 快照配置(rdb持久化)

1
2
3
4
5
6
7
8
9
save 900 1 # 表示每15分钟且至少有1个key改变,就触发一次持久化
save 300 10 # 表示每5分钟且至少有10个key改变,就触发一次持久化
save 60 10000 # 表示每60秒至少有10000个key改变,就触发一次持久
save “” # 这样可以禁用rdb持久化
stop-writes-on-bgsave-error yes # rdb持久化写入磁盘避免不了会出现失败的情况,默认一旦出现失败,redis会马上停止写操作。如果你觉得无所谓,那就可以使用该选项关闭这个功能。
rdbcompression yes # 是否要压缩
rdbchecksum yes # 是否进行数据校验
dbfilename dump.rdb # 定义快照文件的名字
dir ./ # 定义快照文件储存路劲

4.redis 安全相关配置

1
2
3
requirepass yanyi # 设置redis-server的密码
rename-command CONFIG yanyi.config # 将CONFIG命令更名为yanyi.config,这样可以避免误操作,但如果使用了 AOF持久化,建议不要启用该功能
rename-command CONFIG “” # 也可以后面定义为空,这样就禁掉了该CONFIG命令

5.redis 限制相关配置

1
2
3
4
maxclients 10000 # 限制最大客户端连接数
maxmemory <bytes> # 设定最大内存使用数,单位是byte
maxmemory-policy volatile-lru # 指定内存移除规则
maxmemory-samples 3 # LRU算法和最小TTL算法都并非是精确的算法,而是估算值。所以你可以设置样本的大小。假如redis默认会检查三个key并选择其中LRU的那个,那么你可以改变这个key样本的数量。

6.redis AOF 持久化相关配置

1
2
3
4
5
6
appendonly no # 如果是no,则开启aof持久化
appendfilename “appendonly.aof” # 指定aof文件名字
appendfsync everysec # 指定fsync()调用模式,有三种no(不调用fsync),always(每次写都会调用fsync),everysec(每秒钟调用一次fsync)。第一种最快,第二种数据最安全,但性能会差一些,第三种为这种方案,默认为第三种。
no-appendfsync-on-rewrite no # 设置yes,可避免当写入量非常大时的磁盘io阻塞
auto-aof-rewrite-percentage 10 # 规定什么情况下会触发aof重写。该值为一个比例,10表示当aof文件增幅达到10%时则会触发重写机制。
uto-aof-rewrite-min-size 64mb # 重写会有一个条件,就是不能低于64Mb

7.redis 慢日志相关配置

        针对慢日志,你可以设置两个参数,一个是执行时长,单位是微秒,另一个是慢日志的长度。当一个新的命令被写入日志时,最老的一条会从命令日志队列中被移除。

1
2
slowlog-log-slower-than 10000 # 慢于10000ms则记录日志
slowlog-max-len 128 # 日志长度